package cn.bdqn.mapper;

import cn.bdqn.domain.Storagedan;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 仓库单mapper
 *
 * @author ming
 */
public interface StoragedanMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Storagedan record);
     //根据数据进行添加数据
    int insertSelective(Storagedan record);

    Storagedan selectByPrimaryKey(Integer id);
    //根据药品信息修改仓库药品信息
    int updateByPrimaryKeySelective(Storagedan record);

    int updateByPrimaryKey(Storagedan record);
    //查询仓库所有信息
    List<Storagedan> selectAll();
    //多条件查询仓库药品信息
    List<Storagedan> selectByStoragedant(Storagedan storagedan);
    /*
     查询药品是否过期,或者即将过期 根据有效状态查询
     effectiveStatus 有效状态
         1 已过期
         2 即将过期
     */
    List<Storagedan> selectByEffectiveStatus(Integer effectiveStatus);
    //定期判断药品是否过期 修改药品的状态为已过期1
    void updateEffectiveStatus1();
    //定期判断药品是否过期 修改药品的状态为即将过期2
    void updateEffectiveStatus2();
    //定期删除药品库存数量为0的数据
    void deleteByDanStorageNumber();
    //查询缓存紧张的信息
    List<Integer> selectIDSByDanStorageNumber();
    /*
    根据药品的名称 查询药品的信息
    条件:药品的数量大于0
    根据生产日期排升序
     */
    Storagedan selectByDanName(String danName);
    /*
    根据药品名称和恶数量修改仓库中的药品数量
     */
    void updateDanStorageNumber(@Param("danName") String danName, @Param("num") Integer number);

    /**
     *根据药品名称查询到药品的数量
     */
    int selectSumNumberByDanName(String danName);
    /*
    修改当前药品所有数量为0
     */
    void updateNumberByName(String danName);





}